package tables

// Policy 这里的策略是对全局生效的策略
type Policy struct {
	Id          int64  `json:"id,string" gorm:"primaryKey"`
	TaskName    string `json:"taskName"`         // 任务名称，eg: 获取CPU信息
	TaskLv      int    `json:"taskLv"`           // 任务级别：1- 守卫；2-一般插件
	ContentCode int    `json:"contentCode"`      // 内容码
	Cmd         string `json:"cmd"`              // 插件
	Args        string `json:"args"`             // 参数
	ResultType  string `json:"contentCode"`      // 对信息细节进行二次分流处理,策略下发时就需要标记好会返回的结果的内容，用string 是为了更好的使用反射调用处理方法
	Cycle       string `json:"cycle"`            // 执行间隔，month-月、week-周、day-天、hour-小时、minute-分钟
	Num         int    `json:"num"`              // 间隔数值
	Times       int    `json:"times"`            // 执行次数 1-一次性，2-周期性
	StartTime   int64  `json:"startTime,string"` // 开始时间，0表示无限制
	EndTime     int64  `json:"endTime,string"`   // 结束时间，0-无限制
	Status      int    `json:"status"`           // 1-正常；2-正常停止；3-管理员强制停止
}

func (r *Policy) TableName() string {
	return "policy"
}
